草庐IT

Android JsonArray 和 JsonObject 反序列化

全部标签

面对 Set 的循环依赖时的 Java 序列化错误

我的项目是EJB3上的java项目,使用Hibernate和Weblogic服务器。为了方便起见(据我所知,hibernate很典型),一些实体包含循环依赖(父知道子,子知道父)。此外,对于某些子类-hashCode()和equals()方法取决于它们的父类(因为它是唯一键)。在工作时,我看到了一个奇怪的行为-从服务器返回到客户端的一些Set,虽然包含正确的元素,但表现得好像它们什么都不包含一样。例如,一个像这样的简单测试:set.contains(set.toArray()[0])虽然hashCode()返回了false>方法不错。经过大量调试后,我能够生成2个重现问题的简单类(我可

java - GSON通过注解控制序列化格式化

我正在尝试使用注释来控制序列化格式。但是似乎没有任何方法可以从TypeAdapter或TypeAdapterFactory内部访问字段注释。这是我正在努力实现的一个例子。importorg.joda.time.DateTime;publicclassMovie{Stringtitle;@DateTimeFormat("E,Mdyyyy")DateTimereleaseDate;//otherfields...}publicclassLogEvent{Stringmessage;@DateTimeFormat("yyyyMMdd'T'HHmmss.SSSZ")DateTimetimest

java - 如何禁用 Wildfly 9.0.2 尝试序列化集群应用程序中的某些类

在集群设置期间,我遇到了WildFly/Infinispan尝试序列化许多类的问题,这些类可以在每个实例上重新创建-尽管无论出于何种原因,它们似乎决定在集群中分布。最初我认为@Stateless注释会产生我想要的效果,尽管它会因没有正确的构造函数而引发问题,所以我认为这不是我们正在寻找的。在每个类的基础上禁用它或覆盖序列化方法的正确方法是什么? 最佳答案 非回答请谨慎使用为选定类禁用序列化的方法。当在本地或某些有限的开发环境中运行时,您的应用程序可能不需要“集群”并且不需要复制session或有状态实体。然而,一旦部署到测试或生产中

java - 为什么 Sonar 在 LocalDateTime 已经可以序列化时想要标记为 transient ?

我有一个Eclipse的Sonar插件,它给了我一个使这个基于值的字段成为transient的,这样它就不会包含在这个类的序列化中在LocalDateTime对象上。我不明白的是,LocalDateTime绝对是可序列化的。这是类publicfinalclassLocalDateTimeimplementsTemporal,TemporalAdjuster,ChronoLocalDateTime,Serializable{有人有什么想法吗?我只是不明白transient是什么意思吗?通常我不会太在意,但奇怪的是我能够在Get请求中序列化它,但不能在post请求中反序列化它,我想知道是否

java - 即使存在默认构造函数,也无法从对象值反序列化(没有基于委托(delegate)或属性的创建者)

我有一个类看起来像classMyClass{privatebyte[]payload;publicMyClass(){}@JsonCreatorpublicMyClass(@JsonProperty("payload")finalbyte[]payload){this.payload=payload;}publicbyte[]getPayload(){returnthis.payload;}}我正在使用Jackson进行序列化然后反序列化。序列化工作正常,但在反序列化期间,我收到此错误消息-Cannotconstructinstanceof`mypackage.MyClass`(noC

java - 测试序列化编码

验证/测试文本字符串是否序列化为具有特定编码的字节数组的最佳方法是什么?在我的例子中,我想验证XML结构是否已序列化为具有可变字符长度的UTF-8编码的字节数组。例如,我当前的丑陋程序是在序列化之前将一个已知需要两个字节的字符注入(inject)到结构中,然后用ASCII字符替换该两个字节的字符并比较序列化数组的长度。这应该会产生两个序列化数组,其中包含双字节字符的数组的长度应为+1。此外,如果解决方案对Java来说是优雅的。我想不出任何优雅的方法来在字节数组中寻找字节序列。(可用于寻找代表UTF-8中所需字符表示的已知字节序列。) 最佳答案

java - 带有日期对象的 Jersey + Jackson 反序列化失败

我同时使用jersey和jackson来开发我的RESTAPI,但在反序列化日期字符串时遇到问题。我已经在Jersey注册了一个提供者类:@ProviderpublicclassMyJsonProviderextendsJacksonJsonProvider{publicstaticfinalStringDATE_FORMAT="yyyy-MM-ddHH:mm:ss";@OverridepublicvoidwriteTo(Objectvalue,Classtype,TypegenericType,Annotation[]annotations,MediaTypemediaType,Mu

java - 使用 Jersey 和 MOXy 将 JSON 反序列化为列表集合

我正在尝试获取JSON对象并将它们放入一个集合中(我选择了列表)。通过使用适当的getter和setter创建BuiltCharacter,我已经能够将JSON响应解码为单个POJO。对于JSON元素数组,我尝试了以下方法:Listcharacters=response.readEntity(newGenericType>(){});和Listcharacters=client.target(uri).request(MediaType.APPLICATION_JSON).get(newGenericType>(){});使用这些方法让我得到以下结果:线程“main”中的异常java.

java - Apache Spark Lambda 表达式 - 序列化问题

我尝试在spark任务中使用lambda表达式,它抛出“java.lang.IllegalArgumentException:无效的lambda反序列化”异常。当代码类似于"transform(pRDD->pRDD.map(t->t._2))"时会抛出此异常。代码片段如下。JavaPairDStreamaggregate=pairRDD.reduceByKey((x,y)->x+y);JavaDStreamcon=aggregate.transform((Function,JavaRDD>)pRDD->pRDD.map((Function,Integer>)t->t._2));Java

java - 使用 Jackson/Java 来确保所有序列化到 JSON 都在单引号或双引号内分隔不受信任的数据以转义任何特殊字符?

我有以下Fortify安全问题:JSONInjection:Ensurethatallserializationisperformedusingasafeserializationfunctionthatdelimitsuntrusteddatawithinsingleordoublequotesandescapesanyspecialcharacters.下面是我的代码:publicStringsaveJson(Stringjson,longID,StringuserId)throwsSQLException,JsonParseException,JsonMappingExcepti